package com.superman.supermarket.client.widget.button;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Image;

/**
 * 勾选按钮
 * 
 * @author superman
 * @version 2018年8月7日下午11:45:29
 */
public class CheckButton extends Image implements HasValueChangeHandlers<Boolean> {

	private boolean check = false;
	private boolean enable = true;

	/**
	 * 构造方法
	 * 
	 * @author superman
	 * @version 2018年8月7日 下午11:46:21
	 */
	public CheckButton() {
		this.setSize("0.533333rem", "0.533333rem");
		setCheck(false);

		addClickHandler(new ClickHandler() {

			@Override
			public void onClick(ClickEvent event) {
				// event.stopPropagation();
				if (enable)
					setCheck(!check);

			}
		});
	}

	@Override
	public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Boolean> handler) {
		return addHandler(handler, ValueChangeEvent.getType());
	}

	/**
	 * 是否被选中
	 * 
	 * @author superman
	 * @version 2018年8月7日 下午11:48:00
	 * @return boolean
	 */
	public boolean isCheck() {
		return check;
	}

	/**
	 * @author superman
	 * @version 2018年8月7日 下午11:47:21
	 * @param check
	 */
	public void setCheck(boolean check) {
		ValueChangeEvent.fire(this, check);
		this.check = check;
		if (check) {
			this.setUrl(
					"");
		} else {
			this.setUrl(
					"");
		}

	}

	/**
	 * 设置是否可用
	 * 
	 * @author superman
	 * @version 2018年8月9日 上午10:33:55
	 * @param enable
	 */
	public void setEnable(boolean enable) {
		this.enable = enable;
	}
}
